---
title: Prerequisite Check list
hide_title: true
---

import { Advanced, Charts, Details, Modal, Steps, Tabs, TabItem, Card, CardGrid, LinkCard, Aside, Icon } from "/src/components/global.jsx"

⭐ The rules of engagement are:

<Steps>

1. Use Docker - to avoid conflicts with the host system, especially with Qt. Docker is the recommended method.

2. Use Alpine - It is the main supported system and Debian is a testing and fallback. You do not need to build on an older host to use these binaries there.

3. `sudo` - `root` is not required to run the script, but it is required to install the core dependencies if they are missing.

4. Using additional flags and switches can add dependencies, like `-c` for cmake and `-cd` for cache dependencies.

5. Executing the script with no arguments will only install the dependencies and configure the build environment.

6. Nothing is built until you provide the `all` or a specific module name as a positional parameter to the script.

7. The script has a comprehensive built-in help system. Use `bash ~/qbittorrent-nox-static.sh -h` to see the help.

8. You can fork the repo and build on Github using Github Actions to create your own custom releases.

</Steps>

<Advanced>

:::tip[Optional - Paid service for faster build times]
For faster build times you can consider a paid service like <Modal id="buildjet" label="buildjet.com"/> to use as self hosted runners with the Github Actions
:::

</Advanced>

### Prerequisite Check list

If you want to self host you need to be able to meet these conditions on your host in order to use the script.

🟩 Supported host build platforms
    - Debian: `Bookworm`
    - Ubuntu: `Noble`
    - Alpine: `3.15` or greater

🟩 Build environment
    - <Modal id="docker" label="Docker"/> via a shell like <Modal id="bash" label="Bash"/> or <Modal id="powershell" label="Powershell"/>
    - <Modal id="docker-desktop" label="Docker Desktop"/>: `Windows` `MacOS` `WSL2`
    - WSL2
      - Run directly in the Debian or Ubuntu image ❌ (works but not recommended)
      - Via <Modal id="docker-desktop" label="Docker Desktop"/> ✅ (recommended method)
      - Docker installed in <Modal id="wsl2" label="WSL2"/> image ✅ (alternative recommendation)


🟩 Bash Shell script
    - This is 100% a modern bash shell script and it requires having access to bash to run it.


🟧 Host permissions

    - The script needs to install some system dependencies in order to proceed and if you do not have permission or access to do this or no access to docker to use a container you must find a more suitable host environment.


🟥 Qt6 requirements

    - If you build using Qt6 you will need to have these dependencies installed on the host, <Modal id="qemu" label="qemu and binmtfs"/>

<Tabs>
<TabItem value="Debian based Linux" label="debian">

```bash
sudo apt install qemu-user-static binfmt-support
```

</TabItem>
<TabItem value="Alpine linux" label="alpine">

```bash
sudo apk add qemu qemu-openrc
```

</TabItem>
</Tabs>
